//冒泡排序(小规模)
function bubbleSort(arr) {
    // 双重for循环，俩俩对比进行位置交换
    for(let i = 0; i < arr.length - 1; i++) {
        for(let j = 0; j < arr.length - 1 - i; j++) {
            if(arr[j] > arr[j + 1]) {
                [arr[j] , arr[j + 1]] = [arr[j + 1] , arr[j]]
            }
        }
    }
    return arr
}

// 选择排序(小规模)
function selectionSort(arr) {
    //对数组进行循环，把循环i作为最小索引minxIndex
    for(let i = 0; i < arr.length; i++) {
        let minxIndex = i
        //循环之后的数据 与最小索引值进行比对
        for(let j = i + 1; j < arr.length; j++) {
            if(arr[minxIndex] > arr[j]) { 
                // 如果找到更小的数，记录它的索引
                minxIndex = j
            }
        }
        if(i !== minxIndex) {
            [arr[i],arr[minxIndex]] = [arr[minxIndex], arr[i]]
        }
    }
    //返回
    return arr
}

// 插入排序

// 归并排序

// 快速排序

// 堆排序

// 希尔排序

// 技术排序

// 桶排序

// 基数排序


const sort = {
    bubbleSort,
    selectionSort,
}

// export
export default sort
